주 내용
- 자바가 거듭 변화하는 이유
- 컴퓨팅 환경의 변화
- 자바에 부여되는 시대적 변화 유구
- 자바8과 자바9의 새로운 핵심 기능
1.1 역사의 흐름은 무엇인가?
- 자바 1.0 : 스레드, 락, 메모리 모델 지원을 하였지만 특별 전무가로 구성된 프로젝트 팀이 아닌 경우 해당하는 저수준의 기능을 온전히 활용하지 못함.
- 자바 5 : 스레드 풀, 병렬 실행 컬렉션 등 도입
- 자바 7 : 병렬 실행에 도움을 주는 포크/조인 프레임워크 제공
- 자바 8 : 병렬 실행을 새롭고 단순한 방식으로 접근할 수 있는 방식 제공
[!하드웨어적 변화] > 자바 8의 등장에는 멀티코어 CPU의 대중화와 같은 하드웨어적 변화가 큰 영향을 끼쳤다. 이전에는 대부분의 자바 프로그램이 코어 중 하나만 사용하여 나머지 코어를 유휴 idle로 두거나, 운영체제, 바이러스 검사 프로그램과 파워를 나눠서 사용하였지만 자바8은 그렇지 않다.
자바 8의 새로운 기능
자바 8은 간결한 코드, 멀티코어 프로세서의 쉬운 활용이라는 두 가지 사항을 기반으로 발전했다.
간결한 코드
다음은 사과 목록을 무게순으로 정렬하는 코드이다.
```
// before Java 8
Collections.sort(inventory, new Comparator<Apple>() {
public int compare(Apple a1, Apple a2) {
return a1.getWeight().compareTo(a2.getWeight());
}
});
// after Java 8
inventory,.sort(comparing(Apple::getWeight));
```
위와같은 방식으로 간단하게, 자연어에 더 가깝게 코드를 구현할 수 있다.